package com.night.card.service.interfs;


import com.github.pagehelper.PageInfo;
import com.night.common.entity.card.Card;
import com.night.common.entity.card.CardIn;
import com.night.common.entity.card.CardOut;

/**
 * @ClassName: CardService
 * @Description: card的service层接口
 * @author: CHX42
 * @date: 2022/10/21-0:36
 * @version: v1.0
 */
public interface CardService {
    /**
     * @return void
     * @Author CHX42
     * @Description 新增校园卡方法
     * @Date 2022/10/21  9:30
     * @Param [card：封装校园卡实体类]
     **/
    void add(Card card);

    /**
     * @return void
     * @Author CHX42
     * @Description 物理删除校园卡方法
     * @Date 2022/10/21  9:31
     * @Param [id：封装要删除的校园卡ID]
     **/

    void delete(Integer id);

    /**
     * @return Card：校园卡实体类
     * @Author CHX42
     * @Description 根据id查询校园卡信息
     * @Date 2022/10/21  9:33
     * @Param [id：需要查询的校园卡id]
     **/

    Card getById(Integer id);

    /**
     * @return List<Card>：返回校园卡List集合
     * @Author CHX42
     * @Description 查询所有校园卡信息
     * @Date 2022/10/21  9:34
     * @Param []
     **/

    PageInfo<Card> getAll();

    /**
     * @return List<Card>：返回校园卡List集合
     * @Author CHX42
     * @Description 多条件查询校园卡信息
     * @Date 2022/10/21  9:35
     * @Param [card：封装查询参数]
     **/

    PageInfo<Card> getBy(PageInfo<Card> pageInfo);

    /**
     * @return void
     * @Author CHX42
     * @Description 修改校园卡信息
     * @Date 2022/10/21  9:46
     * @Param [card：封装修改参数，必须封装id]
     **/
    void update(Card card);

    /**
     * @return void
     * @Author CHX42
     * @Description 充值
     * @Date 2022/10/22  20:51
     * @Param [card：封装id、Money]
     **/
    void inMoney(CardIn cardIn);

    /**
     * @return void
     * @Author CHX42
     * @Description 消费
     * @Date 2022/10/22  20:51
     * @Param [card：封装id、Money]
     **/
    void outMoney(CardOut cardOut);
    /**
     * @Author CHX42
     * @Description 根据学生id查询该学生的一卡通信息
     * @Date  2022/10/27  14:12
     * @Param [studentId：学生id]
     * @return Card：一卡通信息
     **/
    Card getByStudentId(Integer studentId );

}
